Third party programs request input methods to have plug-in capability so that the input method can add third-party components into the input system to extend input experience in specific scenarios. This further facilitates extensibility for adding more input features as services after shipping the input method core binaries. Such plug-in components need to have a user interface (UI) look and behavior for communications with backend datasources, which can be in a local computer or at a remote server. Additionally, these plug-in components need to be downloaded and easily installable and updated appropriately when new versions become available.